wget Příkaz wget je konzolový nástroj na stahování obsahu webu nebo ftp. Umí především rekurzivně sledovat odkazy. Základní použití je opravdu jednoduché. Příkazem
$ wget <URL>
stáhneme příslušný soubor do aktuálního adresáře.
Pojďme se podívat na nejzajímavější volby:
-O <filename> .. udává, jak se má jmenovat stažený soubor-S .. na standardní chybový výstup vypíše HTTP hlavičky nebo odpovědi FTP serveru-b .. stahuje na pozadí-q a -nv .. omezí výstupy programu (první zcela, druhá částečně), vhodné pro stahování na pozadí nebo neinteraktivní spouštění.-p .. stáhne HTML stránku i s veškerým viditelným obsahem (tj. obrázky, zvuky, styly, nikoliv odkazy)-r .. zapne rekurzivní režim, tj. stáhne dané URL a pokračuje nalezenými odkazy, funguje i s FTP, je-li jako URL zadán adresář, stáhne ho s celým jeho obsahem včetně podadresářů.-k .. slouží k přepsání linků ve staženém HTML dokumentu na lokálně stažený obsah.Další spoustu užitečných parametrů najdete v manuálové stránce nebo v rozsáhlé dokumentaci www.gnu.org/software/wget/manual/wget.html.
$ wget https://www.edumach.cz/files/alice.txt
Stáhne textový soubor.
$ cd ~/www
$ wget -k -p www.n.
Stáhne úvodní stránku včetně obrázků a stylů (volba -p). V aktuálním adresáři vznikne adresář www.n. a v něm soubor index.html a dále všechen potřebný obsah pro správné zobrazení stránky. Parametr -k slouží k přepsání linků ve staženém HTML dokumentu na lokálně stažený obsah. Toto je nutné např. v případě, že na stránce byla použita absolutní URL. Všimněte si, že při neuvedení protokolu v URL se předpokládá HTTP/HTTPS, a není-li z URL zřejmý název souboru, použije se index.html (i když v tomto konkrétním případě se ve skutečnosti jedná o soubor index.php).
Stáhne textov soubor.
https://tux.panska.cz/~10XPrijmeniJ/www.gnu.org/
scp V běžné praxi se poměrně často setkáváme s potřebou nahrávat větší či menší počet souborů na nějaký vzdálený počítač. Existuje několik okenních aplikací jako WinSCP, Cyberduck, FileZilla apod. Ty používají protokol SFTP (SSH file transfer protocol). Jde to i bez nich, a to pomocí protokolu SCP (Secure Copy). K tomu slouží příkaz scp (OpenSSH secure file copy). Základní syntaxe příkazu je:
scp [volby] source target
Základní použití:
$ scp test.txt 10XPrijmeniJ@217.195.162.12:/home/10XPrijmeniJ
Toto je aAsi nejjednodušší příklad. V tomto případě se zkopíruje soubor test.txt z aktuálního adresáře na lokálním disku na vzdálený počítač s IP adresou 217.195.162.12 pod uživatelským účtem 10XPrijmeniJ do adresáře /home/10XPrijmeniJ. Namísto adresy IP můžeme použít i doménové jméno cílového počítače (v tomto případě tux.panska.cz).
Před samotným kopírováním souboru budeme dotázání na heslo k účtu 10XPrijmeniJ na vzdáleném stroji (pokud nemáme aktivní ssh klíče).
Funguje i kopírování opačným směrem:
$ scp 10XPrijmeniJ@217.195.162.12:/home/10XPrijmeniJ/test.txt ~
Výše uvedený příklad je přesným opakem toho prvního. Ze serveru 217.195.162.12 a adresáře /home/10XPRijmeniJ zkopírujeme soubor test.txt do našeho home adresáře na disku ~. Před samotným kopírováním souboru budeme opět dotázání na heslo k účtu 10XPrijmeniJ na vzdáleném stroji.
Další příklady použití:
$ scp * pepa@192.168.1.200:/home/pepa
Důkaz toho, že SCP umí kopírovat více souborů za sebou. SCP zkopíruje všechny soubory v aktuálním adresáři (*) na server 192.168.1.200 do adresáře /home/pepa.
$ scp -r pokus pepa@192.168.1.200:/home/pepa
Tento příkaz zkopíruje adresář pokus včetně všech jejích podadresářů na server 192.168.1.200 do adresáře /home/pepa.
$ scp pepa@192.168.1.200:/home/pepa/temp/test.txt pepa@192.168.1.200:/home/pepa
Zřejmě nejzajímavější příklad použití. Data jsou kopírována vzdáleně pouze mezi servery. Pozor -- je důležité zajistit vzájemnou autentizaci mezi prvním a druhým severem (ssh klíč).
I Midnight Commander disponuje funkcí, která umožní připojit se na vzdálený server a jeho adresářovou strukturu zobrazit v panelu. To vám umožní provádět běžné operace se soubory a adresáři: kopírování, přesun, mazání, editaci
Toto je pouze ukázka. Chybí nám druhý server 😦
Příkazem mc spusťte Midnight Commander. Klávesou F9 rozbalte horní menu. V levém (nebo pravém) panelu zvolte položku SFTP link a zadejte jméno, adresu a výchozí adresář ve tvaru sftp://jmeno@server:/:
sftp://10XPrijmeniJ@tux.panska.cz:/
Po zadání svého hesla jste připojeni. Příklad pro TuXe:
Ukončení spojení provedete prostým "vyskákáním" do rootovského adresáře (opakovaným Home+Enter).
TIP: Ve druhém panelu se můžete připojit k dalšímu serveru a kopírovat, přesouvat... soubory mezi nimi. Skvělé, že?
WinSCP je dvou-panelový správce souborů pro Windows. Umí se připojit ke vzdálenému serveru, přenášet soubory oběma směry a běžnou práci se soubory: vytvoření, smazání (BEZ KOŠE!), přejmenování, přesun, editování…
Po kliknutí na Nové místo vyberte typ SFTP (port nechte na 22), zadejte název serveru (tux.panska.cz) své uživatelské jméno ve tvaru 10XPrijmeniJ (dbejte na velikost znaků) a své školní heslo a klepněte na Uložit (můžete zakliknout uložení hesla). Pak klepněte na Přihlásit.
První přihlášení bude vyžadovat odsouhlasení výměny šifrovacích klíčů.
Cyberduck je klient s otevřeným zdrojovým kódem (licencí GNU GPL) pro mnoho protokolů, který je k dispozici pro macOS a Windows.
Klepněte na ikonu Záložky a poté dole na ikonu +. Vyberte protokol SFTP (port nechte na 22), zadejte název serveru (tux.panska.cz) své uživatelské jméno ve tvaru 10XPrijmeniJ (dbejte na velikost znaků) a své školní heslo. Volitelně můžete změnit název přezdívky a visačky. Poklepáním na záložku se připojte.
Nejdůležitější a většinou nejproblematičtější bývá volba zálohovacího programu. V Linuxu existuje nespočet nástrojů, které lze pro zálohu dat použít.
Zálohy obecně rozdělujeme do několika skupin.
| Typ | Význam |
|---|---|
| Úplná | Ukládá přesné kopie všech dat |
| Rozdílová | tzv. "diferenciální" záloha. U této se ukládají pouze ty soubory (nebo jen části souborů), které se změnily od poslední úplné zálohy. Datově a časově nejúspornější způsob. |
| Přírůstková | tzv. "inkrementální" záloha. U tohoto typu je ukládána kopie jen těch souborů, které se změnily od poslední, ať již úplné, nebo inkrementální, zálohy. |
rsync Rsync slouží k zálohování (i inkrementálnímu) celých stromových struktur disku, a to i po síti. Existuje pro něj spousta nástaveb většinou ve formě různých skriptů.
Jestliže máme rsync nainstalovaný a chceme si ho otestovat, založíme si na svém disku v adresáři /tmp dva adresáře. První nazveme abc a druhý xyz. Našim úkolem bude přenést zálohu adresáře abc do adresáře xyz. Abychom měli co přenášet, vytvoříme si ještě v adresáři abc příkazem touch /tmp/abc/test soubor test.
Syntaxe programu rsync je shodná s většinou linuxových příkazů. Jako první zadáváme patřičný parametr, následně adresář, který chceme zálohovat a dále pak adresář, do kterého bude záloha uložena. Nejjednodušší příkaz by pak mohl vypadat kupříkladu takto:
$ rsync -av /tmp/abc/ /tmp/xyz/
Pakliže jej spustíme, rsync zkopíruje všechny soubory z adresáře abc do adresáře xyz. Parametr -av značí, že bude provedena „ukecaná“ rekurzívní záloha se zachováním patřičných symlinků, práv, časů, skupin vlastníků a zařízení.
Výše uvedený příklad je plně funkční, ovšem někdy potřebujeme přenášet soubory po síti a ne jen v rámci jednoho počítače. Pro tyto případy je rsync vybaven přepínačem -e, za který doplníme název shellu, přes který budeme ke stanici přistupovat. S protokolem SSH, vzdáleným počítačem pepa.net a s uživatelem tester by příkaz vypadal následovně:
$ rsync -av -e ssh /tmp/abc/ tester@pepa.net:/tmp/xyz/
Automatizovaná vzdálená synchronizace:
$ rsync --rsh="sshpass -p HESLO ssh -l jmeno" example.com:/var/ /backup/
Předtím je nutné provést výměnu klíčů.
Důležité přepínače:
-a ... zachová práva, časy, skupiny vlastníků-v ... "ukecaný" výstup (verbose)--dry-run ... pouze test bez skutečného přenosu (užitečné pro otestování)--delete ... smaže neexistující soubory a adresáře v cíliPOZOR na význam lomítka na konci cesty!
...abc/ ... včetně obsahu adresáře abc (tzn. rekurzivně)...abc ... pouze samotný adresář abc